﻿using Microsoft.Office.Interop.Outlook;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Linq;
using VerifyDomainOutlookAddIn.Models;


namespace VerifyDomainOutlookAddIn
{
    public partial class ThisAddIn
    {
        private readonly VerifyDomainService service = new VerifyDomainService();

        private void ThisAddIn_Startup(object sender, System.EventArgs e)
        {
            this.Application.ItemSend += Application_ItemSend;
        }

        private void ThisAddIn_Shutdown(object sender, System.EventArgs e)
        {
            this.Application.ItemSend -= Application_ItemSend;
        }

        private void Application_ItemSend(object Item, ref bool Cancel)
        {
            var mail = Item as MailItem;
            if (mail == null)
            {
                return;
            }

            try
            {
                Cancel = !service.VerifyDomain(mail);
            }
            catch (System.Exception ex)
            {
                Cancel = !service.HandleError(ex, mail);
            }
        }

        #region VSTO で生成されたコード

        /// <summary>
        /// デザイナーのサポートに必要なメソッドです。
        /// このメソッドの内容をコード エディターで変更しないでください。
        /// </summary>
        private void InternalStartup()
        {
            this.Startup += new System.EventHandler(ThisAddIn_Startup);
            this.Shutdown += new System.EventHandler(ThisAddIn_Shutdown);
        }
        
        #endregion
    }
}
